package org.web.clientlistmanager.sdk.dto;


import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.List;

public class LocalClientTypeListDTO {

    private LocalClientProcessDTO localClientProcessDTO;

    public LocalClientTypeListDTO(LocalClientProcessDTO localClientProcessDTO) {
        this.localClientProcessDTO = localClientProcessDTO;
    }

    /**
     * 客户端类型名称，定义客户端功能类型，例如数据库客户端、redis客户端等。由客户端启动注册时提供。
     */
    @NotBlank(message = "typeName can't be blank. ")
    @Size(max = 50)
    private String typeName;

    /**
     * 客户端类型，指定客户端类型，默认值1。由客户端启动注册时提供。
     */
    @NotBlank(message = "typeVersion can't be blank. ")
    @Size(max = 50)
    private String typeVersion = "1.0";

    /**
     * 端标记，server表示服务端，client表示客户端，默认是【client】，不指定则为【client】。由客户端启动注册时提供。
     */
    @NotBlank(message = "typeSide can't be blank. ")
    @Size(max = 50)
    private String typeSide;

    /**
     * 服务端地址，微服务做为组件使用方，是客户端，记录服务端的地址。由客户端启动注册时提供。如果涉及一组IP，且是IPV6，需要考虑其长度限制，当前设定的长度限制为500。如果不指定，后端默认补充默认值 【Default】。
     */
    @NotBlank(message = "typeServerSideAddress can't be blank. ")
    @Size(max = 500)
    private String typeServerSideAddress;

    /**
     * 扩展信息，端的扩展信息，提供存储，自身并不使用，接入服务自行解析处理。
     */
    @NotBlank(message = "typeExtendsValue can't be blank. ")
    @Size(max = 1000)
    private String typeExtendsValue;


}
